home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / firiir.arc / FIRBPASS.ASM next >
Encoding:
Assembly Source File  |  1985-08-15  |  7.3 KB  |  505 lines

  1. ************************************************************
  2. *
  3. *            LINEAR-PHASE FIR FILTER
  4. *               LENGTH-80 BANDPASS FILTER
  5. *
  6. *    SAMPLING FREQUENCY = 10 KHZ
  7. *
  8. *             FILTER CHARACTERISTICS
  9. *
  10. *                BAND 1     BAND 2      BAND 3
  11. *
  12. *    LOWER BAND EDGE     0.0000     1.3750      4.0000
  13. *    UPPER BAND EDGE     1.0000     3.6250      5.0000
  14. *    NOMINAL GAIN        0.0000     1.0000      0.0000
  15. *    NOMINAL RIPPLE        0.0010     0.0200      0.0010
  16. *    MAXIMUM RIPPLE        0.0004     0.0076      0.0004
  17. *    RIPPLE IN DB      -68.3965     0.0657    -68.3997
  18. *
  19. *                FILTER STRUCTURE
  20. *
  21. *
  22. *           -1      -1             -1
  23. *          z       z             z
  24. * o--->---o--->---o--->---o---> -  -  -o---->---o
  25. * x(n)      |      |      |           |    |
  26. *      |      |      |           |    |
  27. *      v h(0)  v h(1)  v h(2)       v h(N-2) v h(N-1)
  28. *      |      |      |           |    |
  29. *      |      |      |           |    |
  30. *      o--->---o--->---o---> -  -  -o--->----o--->---o
  31. *                               y(n)
  32. *
  33. ************************************************************
  34. *
  35. *   CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
  36. *       | (MICROSECONDS) |      (WORDS)    |     (WORDS)
  37. *   -------|----------------|----------------|-------------
  38. *       |            |             |
  39. *     163  |      32.6        |       163         |        120
  40. *       |            |             |
  41. *   -------------------------------------------------------
  42. *
  43. *   (EXCLUDING INITIALIZATION AND I/O)
  44. *
  45. ************************************************************
  46. *
  47.     IDT 'FIRBPASS'
  48. XN    EQU 0
  49. XNM1    EQU 1
  50. XNM2    EQU 2
  51. XNM3    EQU 3
  52. XNM4    EQU 4
  53. XNM5    EQU 5
  54. XNM6    EQU 6
  55. XNM7    EQU 7
  56. XNM8    EQU 8
  57. XNM9    EQU 9
  58. XNM10    EQU 10
  59. XNM11    EQU 11
  60. XNM12    EQU 12
  61. XNM13    EQU 13
  62. XNM14    EQU 14
  63. XNM15    EQU 15
  64. XNM16    EQU 16
  65. XNM17    EQU 17
  66. XNM18    EQU 18
  67. XNM19    EQU 19
  68. XNM20    EQU 20
  69. XNM21    EQU 21
  70. XNM22    EQU 22
  71. XNM23    EQU 23
  72. XNM24    EQU 24
  73. XNM25    EQU 25
  74. XNM26    EQU 26
  75. XNM27    EQU 27
  76. XNM28    EQU 28
  77. XNM29    EQU 29
  78. XNM30    EQU 30
  79. XNM31    EQU 31
  80. XNM32    EQU 32
  81. XNM33    EQU 33
  82. XNM34    EQU 34
  83. XNM35    EQU 35
  84. XNM36    EQU 36
  85. XNM37    EQU 37
  86. XNM38    EQU 38
  87. XNM39    EQU 39
  88. XNM40    EQU 40
  89. XNM41    EQU 41
  90. XNM42    EQU 42
  91. XNM43    EQU 43
  92. XNM44    EQU 44
  93. XNM45    EQU 45
  94. XNM46    EQU 46
  95. XNM47    EQU 47
  96. XNM48    EQU 48
  97. XNM49    EQU 49
  98. XNM50    EQU 50
  99. XNM51    EQU 51
  100. XNM52    EQU 52
  101. XNM53    EQU 53
  102. XNM54    EQU 54
  103. XNM55    EQU 55
  104. XNM56    EQU 56
  105. XNM57    EQU 57
  106. XNM58    EQU 58
  107. XNM59    EQU 59
  108. XNM60    EQU 60
  109. XNM61    EQU 61
  110. XNM62    EQU 62
  111. XNM63    EQU 63
  112. XNM64    EQU 64
  113. XNM65    EQU 65
  114. XNM66    EQU 66
  115. XNM67    EQU 67
  116. XNM68    EQU 68
  117. XNM69    EQU 69
  118. XNM70    EQU 70
  119. XNM71    EQU 71
  120. XNM72    EQU 72
  121. XNM73    EQU 73
  122. XNM74    EQU 74
  123. XNM75    EQU 75
  124. XNM76    EQU 76
  125. XNM77    EQU 77
  126. XNM78    EQU 78
  127. XNM79    EQU 79
  128. *
  129. H0    EQU 80
  130. H1    EQU 81
  131. H2    EQU 82
  132. H3    EQU 83
  133. H4    EQU 84
  134. H5    EQU 85
  135. H6    EQU 86
  136. H7    EQU 87
  137. H8    EQU 88
  138. H9    EQU 89
  139. H10    EQU 90
  140. H11    EQU 91
  141. H12    EQU 92
  142. H13    EQU 93
  143. H14    EQU 94
  144. H15    EQU 95
  145. H16    EQU 96
  146. H17    EQU 97
  147. H18    EQU 98
  148. H19    EQU 99
  149. H20    EQU 100
  150. H21    EQU 101
  151. H22    EQU 102
  152. H23    EQU 103
  153. H24    EQU 104
  154. H25    EQU 105
  155. H26    EQU 106
  156. H27    EQU 107
  157. H28    EQU 108
  158. H29    EQU 109
  159. H30    EQU 110
  160. H31    EQU 111
  161. H32    EQU 112
  162. H33    EQU 113
  163. H34    EQU 114
  164. H35    EQU 115
  165. H36    EQU 116
  166. H37    EQU 117
  167. H38    EQU 118
  168. H39    EQU 119
  169. *
  170. MODE    EQU 120
  171. CLOCK    EQU 121
  172. MASK1    EQU 122
  173. MASK2    EQU 123
  174. YN    EQU 124
  175. ONE    EQU 125
  176. *
  177.     AORG 0
  178. *
  179.     B START
  180. *
  181. * COEFFICIENTS ARE INITIALLY *
  182. * STORED IN PROGRAM MEMORY   *
  183. *
  184. * DUE TO THE SYMMETRY OF THE IMPULSE RESPONSE *
  185. * ONLY HALF OF THE SAMPLES OF THE IMPULSE     *
  186. * RESPONSE ARE STORED.    THIS MEANS THAT       *
  187. * h(N-1-n) = h(n).                  *
  188. *
  189. CH0    DATA    >FFDC    * -0.107251E-02 *
  190. CH1    DATA    >001F    *  0.973976E-03 *
  191. CH2    DATA    >0051    *  0.249065E-02 *
  192. CH3    DATA    >FFE9    * -0.675043E-03 *
  193. CH4    DATA    >FFE6    * -0.771385E-03 *
  194. CH5    DATA    >FFBA    * -0.212256E-03 *
  195. CH6    DATA    >FFB4    * -0.229530E-02 *
  196. CH7    DATA    >004B    *  0.231021E-02 *
  197. CH8    DATA    >FFF9    * -0.194902E-03 *
  198. CH9    DATA    >0069    *  0.322896E-02 *
  199. CH10    DATA    >00A2    *  0.496452E-02 *
  200. CH11    DATA    >FF6F    * -0.440419E-02 *
  201. CH12    DATA    >FFFE    * -0.314831E-04 *
  202. CH13    DATA    >FF70    * -0.438169E-02 *
  203. CH14    DATA    >FEF4    * -0.815474E-02 *
  204. CH15    DATA    >00CB    *  0.621682E-02 *
  205. CH16    DATA    >000B    *  0.342216E-03 *
  206. CH17    DATA    >00E6    *  0.704627E-02 *
  207. CH18    DATA    >0187    *  0.119391E-01 *
  208. CH19    DATA    >FEE5    * -0.860811E-02 *
  209. CH20    DATA    >000B    *  0.346738E-03 *
  210. CH21    DATA    >FE7F    * -0.117293E-01 *
  211. CH22    DATA    >FDBF    * -0.175964E-01 *
  212. CH23    DATA    >0192    *  0.122947E-01 *
  213. CH24    DATA    >FFB5    * -0.227426E-02 *
  214. CH25    DATA    >026A    *  0.188796E-01 *
  215. CH26    DATA    >0368    *  0.266148E-01 *
  216. CH27    DATA    >FDC2    * -0.175126E-01 *
  217. CH28    DATA    >00C0    *  0.586574E-02 *
  218. CH29    DATA    >FC0A    * -0.309240E-01 *
  219. CH30    DATA    >FAA3    * -0.418954E-01 *
  220. CH31    DATA    >0347    *  0.256315E-01 *
  221. CH32    DATA    >FE3D    * -0.137498E-01 *
  222. CH33    DATA    >0747    *  0.568720E-01 *
  223. CH34    DATA    >09BB    *  0.760286E-01 *
  224. CH35    DATA    >FA3D    * -0.450011E-01 *
  225. CH36    DATA    >052B    *  0.403853E-01 *
  226. CH37    DATA    >EB59    * -0.161339E+00 *
  227. CH38    DATA    >DC2A    * -0.279963E+00 *
  228. CH39    DATA    >2D57    *  0.352454E+00 *
  229. *
  230. MD    DATA    >000A
  231. SMP    DATA    >01F3    * SAMPLING RATE OF 10 KHZ *
  232. *
  233. START    LDPK 0
  234. *
  235.     LACK 1
  236.     SACL ONE    * CONTENT OF ONE IS 1 *
  237. *
  238.     LARK AR0,CLOCK    * THIS SECTION OF CODE LOADS  *
  239.     LARK AR1,>29    * THE FILTER COEFFICIENTS AND *
  240.     LACK SMP    * OTHER VALUES FROM PROGRAM   *
  241. LOAD    LARP AR0    * MEMORY TO DATA MEMORY       *
  242.     TBLR *-,AR1
  243.     SUB ONE
  244.     BANZ LOAD
  245. *
  246.     OUT MODE,PA0    * INITIALIZATION OF ANALOG *
  247.     OUT CLOCK,PA1    * INTERFACE BOARD       *
  248. *
  249. WAIT    BIOZ NXTPT    * BIO PIN GOES LOW WHEN A *
  250.     B WAIT        * NEW SAMPLE IS AVAILABLE *
  251. *
  252. NXTPT    IN XN,PA2    * BRING IN THE NEW SAMPLE XN *
  253. *
  254.     ZAC
  255. *
  256.     LT XNM79    * DUE TO SYMMETRY h(0) = h(79) *
  257.     MPY H0        * x(n-79) * h(79) *
  258. *
  259.     LTD XNM78
  260.     MPY H1        * h(1) = h(78) *
  261. *
  262.     LTD XNM77
  263.     MPY H2
  264. *
  265.     LTD XNM76
  266.     MPY H3
  267. *
  268.     LTD XNM75
  269.     MPY H4
  270. *
  271.     LTD XNM74
  272.     MPY H5
  273. *
  274.     LTD XNM73
  275.     MPY H6
  276. *
  277.     LTD XNM72
  278.     MPY H7
  279. *
  280.     LTD XNM71
  281.     MPY H8
  282. *
  283.     LTD XNM70
  284.     MPY H9
  285. *
  286.     LTD XNM69
  287.     MPY H10
  288. *
  289.     LTD XNM68
  290.     MPY H11
  291. *
  292.     LTD XNM67
  293.     MPY H12
  294. *
  295.     LTD XNM66
  296.     MPY H13
  297. *
  298.     LTD XNM65
  299.     MPY H14
  300. *
  301.     LTD XNM64
  302.     MPY H15
  303. *
  304.     LTD XNM63
  305.     MPY H16
  306. *
  307.     LTD XNM62
  308.     MPY H17
  309. *
  310.     LTD XNM61
  311.     MPY H18
  312. *
  313.     LTD XNM60
  314.     MPY H19
  315. *
  316.     LTD XNM59
  317.     MPY H20
  318. *
  319.     LTD XNM58
  320.     MPY H21
  321. *
  322.     LTD XNM57
  323.     MPY H22
  324. *
  325.     LTD XNM56
  326.     MPY H23
  327. *
  328.     LTD XNM55
  329.     MPY H24
  330. *
  331.     LTD XNM54
  332.     MPY H25
  333. *
  334.     LTD XNM53
  335.     MPY H26
  336. *
  337.     LTD XNM52
  338.     MPY H27
  339. *
  340.     LTD XNM51
  341.     MPY H28
  342. *
  343.     LTD XNM50
  344.     MPY H29
  345. *
  346.     LTD XNM49
  347.     MPY H30
  348. *
  349.     LTD XNM48
  350.     MPY H31
  351. *
  352.     LTD XNM47
  353.     MPY H32
  354. *
  355.     LTD XNM46
  356.     MPY H33
  357. *
  358.     LTD XNM45
  359.     MPY H34
  360. *
  361.     LTD XNM44
  362.     MPY H35
  363. *
  364.     LTD XNM43
  365.     MPY H36
  366. *
  367.     LTD XNM42
  368.     MPY H37
  369. *
  370.     LTD XNM41
  371.     MPY H38
  372. *
  373.     LTD XNM40
  374.     MPY H39
  375. *
  376.     LTD XNM39
  377.     MPY H39
  378. *
  379.     LTD XNM38
  380.     MPY H38
  381. *
  382.     LTD XNM37
  383.     MPY H37
  384. *
  385.     LTD XNM36
  386.     MPY H36
  387. *
  388.     LTD XNM35
  389.     MPY H35
  390. *
  391.     LTD XNM34
  392.     MPY H34
  393. *
  394.     LTD XNM33
  395.     MPY H33
  396. *
  397.     LTD XNM32
  398.     MPY H32
  399. *
  400.     LTD XNM31
  401.     MPY H31
  402. *
  403.     LTD XNM30
  404.     MPY H30
  405. *
  406.     LTD XNM29
  407.     MPY H29
  408. *
  409.     LTD XNM28
  410.     MPY H28
  411. *
  412.     LTD XNM27
  413.     MPY H27
  414. *
  415.     LTD XNM26
  416.     MPY H26
  417. *
  418.     LTD XNM25
  419.     MPY H25
  420. *
  421.     LTD XNM24
  422.     MPY H24
  423. *
  424.     LTD XNM23
  425.     MPY H23
  426. *
  427.     LTD XNM22
  428.     MPY H22
  429. *
  430.     LTD XNM21
  431.     MPY H21
  432. *
  433.     LTD XNM20
  434.     MPY H20
  435. *
  436.     LTD XNM19
  437.     MPY H19
  438. *
  439.     LTD XNM18
  440.     MPY H18
  441. *
  442.     LTD XNM17
  443.     MPY H17
  444. *
  445.     LTD XNM16
  446.     MPY H16
  447. *
  448.     LTD XNM15
  449.     MPY H15
  450. *
  451.     LTD XNM14
  452.     MPY H14
  453. *
  454.     LTD XNM13
  455.     MPY H13
  456. *
  457.     LTD XNM12
  458.     MPY H12
  459. *
  460.     LTD XNM11
  461.     MPY H11
  462. *
  463.     LTD XNM10
  464.     MPY H10
  465. *
  466.     LTD XNM9
  467.     MPY H9
  468. *
  469.     LTD XNM8
  470.     MPY H8
  471. *
  472.     LTD XNM7
  473.     MPY H7
  474. *
  475.     LTD XNM6
  476.     MPY H6
  477. *
  478.     LTD XNM5
  479.     MPY H5
  480. *
  481.     LTD XNM4
  482.     MPY H4
  483. *
  484.     LTD XNM3
  485.     MPY H3
  486. *
  487.     LTD XNM2
  488.     MPY H2
  489. *
  490.     LTD XNM1
  491.     MPY H1
  492. *
  493.     LTD XN
  494.     MPY H0
  495. *
  496.     APAC
  497. *
  498.     SACH YN,1
  499. *
  500.     OUT YN,PA2    * OUTPUT THE FILTER RESPONSE y(n) *
  501. *
  502.     B WAIT        * GO GET THE NEXT POINT *
  503. *
  504.     END
  505.